package com.bookstore.common.util;

import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.digest.DigestUtil;

/**
 * 密码工具类
 */
public class PasswordUtil {

    /**
     * 生成随机盐
     * @return 随机盐
     */
    public static String generateSalt() {
        return RandomUtil.randomString(16);
    }

    /**
     * 加密密码
     * @param password 明文密码
     * @param salt 盐值
     * @return 加密后的密码
     */
    public static String encryptPassword(String password, String salt) {
        return DigestUtil.sha256Hex(password + salt);
    }

    /**
     * 验证密码
     * @param inputPassword 输入的明文密码
     * @param salt 盐值
     * @param encryptedPassword 加密后的密码
     * @return 是否匹配
     */
    public static boolean verifyPassword(String inputPassword, String salt, String encryptedPassword) {
        return encryptPassword(inputPassword, salt).equals(encryptedPassword);
    }
}